Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / js / settings / settingsMaintenanceClient.js

Displaying Raw • Download


meshchatx/src/frontend/js/settings/settingsMaintenanceClient.js bce42bcdce0e7d2c6d78228e864a4cd1d974cc82 (bce42bcd) Text, 5.28 KB

T8b949e/**
* Maintenance, stickers, folders, and RNS reload API calls used from settings.
*/

T8b949e/**
* @param {{ delete: (path: string, config?: object) => Promise<unknown> }} api
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3clearMessagesTb4b4b4(Te6edf3apiTb4b4b4) Tb4b4b4{
Tff7b72await Te6edf3apiTb4b4b4.Tff7b72deleteTb4b4b4(Ta5d6ff"/api/v1/maintenance/messages"Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ get: (path: string) => Promise<{ data?: { count?: number } }> }} api
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3previewDuplicateMessagesTb4b4b4(Te6edf3apiTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/maintenance/messages/duplicates"Tb4b4b4)Tb4b4b4;
Tff7b72return Tb4b4b4{ Te6edf3countTff7b72: Tffa657NumberTb4b4b4(Te6edf3responseTff7b72?Tb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3countTb4b4b4) Tff7b72|| T79c0ff0 Tb4b4b4}Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ delete: (path: string) => Promise<{ data?: { deleted?: number } }> }} api
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3clearDuplicateMessagesTb4b4b4(Te6edf3apiTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Te6edf3apiTb4b4b4.Tff7b72deleteTb4b4b4(Ta5d6ff"/api/v1/maintenance/messages/duplicates"Tb4b4b4)Tb4b4b4;
Tff7b72return Tb4b4b4{ Te6edf3deletedTff7b72: Tffa657NumberTb4b4b4(Te6edf3responseTff7b72?Tb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3deletedTb4b4b4) Tff7b72|| T79c0ff0 Tb4b4b4}Tb4b4b4;
Tb4b4b4}

T8b949e/**
* Build query params for age-based message purge/export.
* @param {{ mode: "days"|"date", days?: number, beforeDate?: string }} opts
* @returns {{ older_than_days?: number, before?: string }|null}
*/
Tff7b72export Tff7b72function Te6edf3buildMessageAgeFilterParamsTb4b4b4(Te6edf3optsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3opts Tff7b72|| Tff7b72typeof Te6edf3opts Tff7b72!== Ta5d6ff"object"Tb4b4b4) Tff7b72return Tff7b72nullTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3optsTb4b4b4.Te6edf3mode Tff7b72=== Ta5d6ff"date"Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3before Tff7b72= Tff7b72typeof Te6edf3optsTb4b4b4.Te6edf3beforeDate Tff7b72=== Ta5d6ff"string" Tff7b72? Te6edf3optsTb4b4b4.Te6edf3beforeDateTb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4) Tff7b72: Ta5d6ff""Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Ta5d6ff/^\d{4}-\d{2}-\d{2}$/Tb4b4b4.Te6edf3testTb4b4b4(Te6edf3beforeTb4b4b4)Tb4b4b4) Tff7b72return Tff7b72nullTb4b4b4;
Tff7b72return Tb4b4b4{ Te6edf3before Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3days Tff7b72= Tffa657NumberTb4b4b4(Te6edf3optsTb4b4b4.Te6edf3daysTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Tffa657NumberTb4b4b4.Tffa657isFiniteTb4b4b4(Te6edf3daysTb4b4b4) Tff7b72|| Te6edf3days Tff7b72< T79c0ff1 Tff7b72|| Te6edf3days Tff7b72> T79c0ff10000Tb4b4b4) Tff7b72return Tff7b72nullTb4b4b4;
Tff7b72return Tb4b4b4{ Te6edf3older_than_daysTff7b72: Tffa657MathTb4b4b4.Te6edf3floorTb4b4b4(Te6edf3daysTb4b4b4) Tb4b4b4}Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ get: (path: string, config?: object) => Promise<{ data?: { count?: number, cutoff?: number } }> }} api
* @param {{ older_than_days?: number, before?: string }} params
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3previewMessageAgePurgeTb4b4b4(Te6edf3apiTb4b4b4, Te6edf3paramsTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/maintenance/messages/purge-preview"Tb4b4b4, Tb4b4b4{ Te6edf3params Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72return Tb4b4b4{
Te6edf3countTff7b72: Tffa657NumberTb4b4b4(Te6edf3responseTff7b72?Tb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3countTb4b4b4) Tff7b72|| T79c0ff0Tb4b4b4,
Te6edf3cutoffTff7b72: Te6edf3responseTff7b72?Tb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3cutoffTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ delete: (path: string, config?: object) => Promise<{ data?: { deleted?: number } }> }} api
* @param {{ older_than_days?: number, before?: string }} params
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3purgeMessagesByAgeTb4b4b4(Te6edf3apiTb4b4b4, Te6edf3paramsTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Te6edf3apiTb4b4b4.Tff7b72deleteTb4b4b4(Ta5d6ff"/api/v1/maintenance/messages"Tb4b4b4, Tb4b4b4{ Te6edf3params Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72return Tb4b4b4{
Te6edf3deletedTff7b72: Tffa657NumberTb4b4b4(Te6edf3responseTff7b72?Tb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3deletedTb4b4b4) Tff7b72|| T79c0ff0Tb4b4b4,
Te6edf3cutoffTff7b72: Te6edf3responseTff7b72?Tb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3cutoffTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ get: (path: string, config?: object) => Promise<{ data?: object }> }} api
* @param {{ older_than_days?: number, before?: string }|null|undefined} [params]
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3exportMessagesBundleTb4b4b4(Te6edf3apiTb4b4b4, Te6edf3paramsTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3config Tff7b72= Te6edf3params Tff7b72&& Tffa657ObjectTb4b4b4.Te6edf3keysTb4b4b4(Te6edf3paramsTb4b4b4)Tb4b4b4.Te6edf3length Tff7b72? Tb4b4b4{ Te6edf3params Tb4b4b4} Tff7b72: Tff7b72undefinedTb4b4b4;
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/maintenance/messages/export"Tb4b4b4, Te6edf3configTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3responseTff7b72?Tb4b4b4.Te6edf3dataTb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ delete: (path: string) => Promise<unknown> }} api
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3clearAnnouncesTb4b4b4(Te6edf3apiTb4b4b4) Tb4b4b4{
Tff7b72await Te6edf3apiTb4b4b4.Tff7b72deleteTb4b4b4(Ta5d6ff"/api/v1/maintenance/announces"Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ delete: (path: string, config?: object) => Promise<unknown> }} api
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3clearNomadnetFavoritesTb4b4b4(Te6edf3apiTb4b4b4) Tb4b4b4{
Tff7b72await Te6edf3apiTb4b4b4.Tff7b72deleteTb4b4b4(Ta5d6ff"/api/v1/maintenance/favourites"Tb4b4b4, Tb4b4b4{
Te6edf3paramsTff7b72: Tb4b4b4{ Te6edf3aspectTff7b72: Ta5d6ff"nomadnetwork.node" Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ delete: (path: string) => Promise<unknown> }} api
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3clearLxmfIconsTb4b4b4(Te6edf3apiTb4b4b4) Tb4b4b4{
Tff7b72await Te6edf3apiTb4b4b4.Tff7b72deleteTb4b4b4(Ta5d6ff"/api/v1/maintenance/lxmf-icons"Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ delete: (path: string) => Promise<unknown> }} api
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3clearStickersTb4b4b4(Te6edf3apiTb4b4b4) Tb4b4b4{
Tff7b72await Te6edf3apiTb4b4b4.Tff7b72deleteTb4b4b4(Ta5d6ff"/api/v1/maintenance/stickers"Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ delete: (path: string) => Promise<unknown> }} api
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3clearGifsTb4b4b4(Te6edf3apiTb4b4b4) Tb4b4b4{
Tff7b72await Te6edf3apiTb4b4b4.Tff7b72deleteTb4b4b4(Ta5d6ff"/api/v1/maintenance/gifs"Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ delete: (path: string) => Promise<unknown> }} api
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3clearArchivesTb4b4b4(Te6edf3apiTb4b4b4) Tb4b4b4{
Tff7b72await Te6edf3apiTb4b4b4.Tff7b72deleteTb4b4b4(Ta5d6ff"/api/v1/maintenance/archives"Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ delete: (path: string) => Promise<unknown> }} api
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3clearReticulumDocsTb4b4b4(Te6edf3apiTb4b4b4) Tb4b4b4{
Tff7b72await Te6edf3apiTb4b4b4.Tff7b72deleteTb4b4b4(Ta5d6ff"/api/v1/maintenance/docs/reticulum"Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ delete: (path: string) => Promise<{ data?: { dropped?: number } }> }} api
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3clearPathTableTb4b4b4(Te6edf3apiTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3apiTb4b4b4.Tff7b72deleteTb4b4b4(Ta5d6ff"/api/v1/maintenance/path-table"Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ post: (path: string) => Promise<unknown> }} api
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3reloadReticulumTb4b4b4(Te6edf3apiTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3apiTb4b4b4.Te6edf3postTb4b4b4(Ta5d6ff"/api/v1/reticulum/reload"Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ get: (path: string) => Promise<{ data?: { stickers?: unknown[] } }> }} api
* @returns {Promise<number>}
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3fetchStickerCountTb4b4b4(Te6edf3apiTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/stickers"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3list Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3stickersTb4b4b4;
Tff7b72return Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3listTb4b4b4) Tff7b72? Te6edf3listTb4b4b4.Te6edf3length Tff7b72: T79c0ff0Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}
Tb4b4b4}

T8b949e/**
* @param {{ get: (path: string) => Promise<{ data?: { gifs?: unknown[] } }> }} api
* @returns {Promise<number>}
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3fetchGifCountTb4b4b4(Te6edf3apiTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/gifs"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3list Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3gifsTb4b4b4;
Tff7b72return Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3listTb4b4b4) Tff7b72? Te6edf3listTb4b4b4.Te6edf3length Tff7b72: T79c0ff0Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}
Tb4b4b4}


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────